import type { PageParam, PageResult } from '@vben/request';
import type { Dayjs } from 'dayjs';

import { requestClient } from '#/api/request';

export namespace DiningTableApi {
  /** 餐桌表（支持多餐厅）信息 */
  export interface DiningTable {
    id: number; // 主键ID
    groupId?: number; // 集团ID
    storeId?: number; // 门店ID
    restaurantId?: number; // 餐厅ID
    tableCode?: string; // 餐桌编号
    tableTypeId?: number; // 餐桌类型ID
    tableName: string; // 餐桌名称
    capacity?: number; // 容纳人数
    status?: string; // 餐桌状态
    floorNumber: number; // 楼层号
    areaName: string; // 区域名称
    tablePosition: string; // 餐桌位置描述
  }
}

/** 查询餐桌表（支持多餐厅）分页 */
export function getDiningTablePage(params: PageParam) {
  return requestClient.get<PageResult<DiningTableApi.DiningTable>>(
    '/spa/dining-table/page',
    { params },
  );
}

/** 查询餐桌表（支持多餐厅）详情 */
export function getDiningTable(id: number) {
  return requestClient.get<DiningTableApi.DiningTable>(
    `/spa/dining-table/get?id=${id}`,
  );
}

/** 新增餐桌表（支持多餐厅） */
export function createDiningTable(data: DiningTableApi.DiningTable) {
  return requestClient.post('/spa/dining-table/create', data);
}

/** 修改餐桌表（支持多餐厅） */
export function updateDiningTable(data: DiningTableApi.DiningTable) {
  return requestClient.put('/spa/dining-table/update', data);
}

/** 删除餐桌表（支持多餐厅） */
export function deleteDiningTable(id: number) {
  return requestClient.delete(`/spa/dining-table/delete?id=${id}`);
}

/** 导出餐桌表（支持多餐厅） */
export function exportDiningTable(params: any) {
  return requestClient.download('/spa/dining-table/export-excel', { params });
}
